#ifndef ENGINE_CONFIG_H
#define ENGINE_CONFIG_H
#include <apoget.h>

class POGET_API Config
{
	Config() {}
	Config(const Config&);
	Config& operator=(const Config&);
	static Config theInstance;
	bool quietMode;

	bool	isInitialized = false;

	static const uint NUM_MAX_CONFIG_NAME_LEN = 32;
	static const uint NUM_MAX_CONFIG_VALUE_LEN = 128;
	static const uint NUM_MAX_OPTIONS = 20;
	
	const struct userOption
	{
		char configName[NUM_MAX_CONFIG_NAME_LEN];
		char configValue[NUM_MAX_CONFIG_VALUE_LEN];
	} configOptions[NUM_MAX_OPTIONS];
	uint numOptions;

	bool		loadConfigFile				(const char* configurationFile);
	void		loadDefaultConfig			();


public:
	static Config& getInstance();

	const char*		getOptionString			(const char* option);
	void			getConfigureOptions		(std::string& options);
	bool			initialize				(const char* configurationFile = NULL, 
												bool quiet = true);
	bool			shutdown				();

};

#define gConfig Config::getInstance()

#endif